home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-03
/
grow.zip
/
GROW.BAS
< prev
next >
Wrap
BASIC Source File
|
1990-03-03
|
3KB
|
118 lines
10 'GROW PROGRAM
20 'JANUARY VOL 6 #1, 1980
30 'Creative Computing
40 '
1000 CLS
1010 GOSUB 2000
1020 GOSUB 3000
1030 GOSUB 4000
1040 GOTO 1020
2000 'INITIALIZE
2010 'CLEAR 300,2
2020 P=0
2030 N$="INIT"
2040 I$=" INTRO "
2060 GOSUB 4000
2070 GOTO 1020
3000 'INPUT LINE
3010 LINE INPUT ">";I$
3020 I$=" "+I$+" "
3030 GOTO 1030
4000 'PROCESS LINE
4010 OPEN "I",1,N$
4020 GOSUB 5000
4040 IF F=1 THEN 4110
4045 CLOSE
4050 OPEN "I",1,"DEFAULT"
4060 GOSUB 5000
4080 IF F=1 THEN 4110
4090 GOSUB 5800
4100 GOTO 4120
4110 GOSUB 5400
4120 CLOSE
4130 RETURN
5000 'FIND LINE
5010 F=0
5020 GOSUB 6000
5030 IF EOF(1) THEN RETURN
5040 GOSUB 6200
5050 IF S$="" THEN 5020
5060 S$=" "+S$+" "
5070 IF INSTR(I$,S$)=0 THEN 5020
5080 F=1
5090 RETURN
5400 'DO ACTIONS
5410 GOSUB 6000
5420 GOSUB 6200
5430 IF S$="" THEN RETURN
5440 T$=LEFT$(S$,1)
5443 IF T$="$" THEN I$=" "+MID$(T$,2,LEN(T$)-1)+" ": GOTO 5420
5545 IF T$="C" THEN CLS: GOTO 5420
5450 IF T$="P" THEN PRINT MID$(S$,2): GOTO 5420
5453 IF T$="*" THEN PRINT "YOUR SCORE IS";P;".":GOTO 5420
5460 IF T$="Q" THEN PRINT "QUIT WITH ";P;" POINTS.":END
5470 IF T$="+" THEN GOSUB 6400:P=P+N:GOTO 5420
5480 IF T$="-" THEN GOSUB 6400:P=P-N:GOTO 5420
5490 IF T$="G" THEN GOSUB 7000:RETURN
5500 IF T$="X" THEN GOSUB 8000:RETURN
5800 'RANDOM RESPONSE
5810 R=INT(RND*3)+1
5820 IF R=1 THEN PRINT "HUH?" ELSE IF R=2 THEN PRINT "WHAT" ELSE PRINT "I DON'T UNDERSTAND"
5830 RETURN
6000 'SKIP BLOCK
6010 IF EOF(1) THEN S$="":RETURN
6020 LINE INPUT #1,S$
6030 IF S$<>"" THEN 6010
6040 RETURN
6200 'GET LINE
6210 IF EOF(1) THEN S$="" ELSE LINE INPUT #1,S$
6220 RETURN
6400 'CONVERT
6410 N=0
6420 T=2
6430 IF T>LEN(S$) THEN RETURN
6440 N=N+10+ASC(MID$(S$,T,1))-ASC("0")
6450 T=T+1
6460 GOTO 6430
6600 'INPUT NEW DATA
6610 LINE INPUT ":";I$
6620 PRINT #1,I$
6630 IF I$<>"" THEN 6610
6640 RETURN
6800 'COPY MODE
6805 CLOSE
6810 OPEN "I",2,N$
6820 OPEN "O",1,"TEMP"
6830 IF EOF(2) THEN RETURN
6840 LINE INPUT #2,I$
6850 PRINT #1,I$
6860 GOTO 6830
7000 'GOTO NEW NODE
7010 IF (LEN(S$)<2) OR (LEN(S$)>9) THEN RETURN
7020 CLOSE
7030 N$=MID$(S$,2)
7040 ON ERROR GOTO 7100
7050 OPEN "I",1,N$
7060 GOSUB 6200
7070 IF S$="" THEN 7150
7080 PRINT S$
7090 GOTO 7060
7100 RESUME 7110
7110 CLOSE
7120 OPEN "O",1,N$
7130 PRINT "DESCRIBE ";N$
7140 GOSUB 6600
7150 ON ERROR GOTO 0
7160 RETURN
8000 'EXTEND MODE
8010 CLOSE
8020 GOSUB 6800
8030 PRINT "KEYWORDS/PHRASES"
8040 GOSUB 6600
8050 PRINT "ACTIONS"
8060 GOSUB 6600
8068 CLOSE
8069 KILL N$
8070 NAME "TEMP" AS N$
8080 RETURN